home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / T-TPUG Old Monthly Disks / (c)ta.d64 / rescue.c (.txt) < prev    next >
Commodore BASIC  |  2007-02-04  |  5KB  |  151 lines

  1. 0 PG$=" R E S C U E ":AU$="RESCUE SURVIVORS":F=1
  2. 25 POKE53280,0:POKE53281,0
  3. 50 CRT=1024:WD=40:VIC=53248:SID=54272:JS=56320:CM=55296:QL=214:QI=254
  4. 90 GOTO62000
  5. 100 DIMJD(15):FORI=0TO15:READ JD(I):NEXT
  6. 101 DATA0,0,0,0,0,6,6,6,0,4,4,4,0,2,8,0
  7. 102 DEF FNJ(X)=JD(PEEK(JS+X)AND 15):DEF FNB(X)=(PEEK(JS+X) AND 16)=0
  8. 103 GOSUB1000:OF=CM-CRT:CP=7:CR=CRT-1:MV=88
  9. 104 POKESID+5,1:POKESID+6,255:POKESID+24,15:POKESID+4,33
  10. 110 MS=1:F=10000:S=0:L=SJ-1:LV=LF:HS=0:RU=0:BN=50
  11. 112 FORI=0TO4:FORJ=0TO4:X(I,J)=0:NEXT:NEXT
  12. 114 FORJ=1TOL+1:ONJGOSUB590,600,610:NEXTJ
  13. 115 PRINT"[147]";
  14. 116 FORCV=1TO23:PRINT"                                       ":NEXT
  15. 117 GOSUB280
  16. 120 POKESID+24,15:POKESID+1,0
  17. 125 DN$=""
  18. 130 PRINTDN$"[156][163][163][163][163][163][163][205]"
  19. 140 PRINT"[158][209][209][209][209][209][156] [160][163][163][163][163][205]     [206][163][163][163][163][163][163][163][163][145][206][163][163][163][163][163][163][163][163][163][163][163][163][157][148][163]"
  20. 150 PRINT"[158]            [156][205][158][168][168][168][156][206]"
  21. 155 GOSUB800
  22. 160 PRINT"":X=1:US=87:Y=1:V=2:AD=-1:IFRU=0THENRU=1:GOSUB580
  23. 170 POKECR+WD+X,US:POKECR+WD+X+OF,CP:GOSUB280
  24. 175 IFF<=0THENGOSUB290:GOTO640
  25. 180 D$=RIGHT$(STR$(FNJ(0)),1):IFD$="0"THEN190
  26. 183 Y=2:SS=CR+X+WD:POKESS,MV
  27. 185 POKECR+X+WD*Y,US:POKECR+X+WD*Y+OF,CP:POKESID+1,99:GOTO320
  28. 190 GETQ$:IFQ$="Q"THENPRINT"[147]":POKESID+1,0:POKESID+15,0:END
  29. 195 GOSUB230
  30. 200 F=F-1:IFF=0THENGOSUB290:GOTO640
  31. 210 POKECR+WD+X,32:X=X+Y:IFX=40ORX=1THENY=-1
  32. 220 GOTO170
  33. 230 FORI=0TOL-1:X(I,2)=X(I,2)+1:IFX(I,2)<X(I,0)THEN260
  34. 240 X(I,2)=0:X$(I)=RIGHT$(X$(I),1)+LEFT$(X$(I),LEN(X$(I))-1):PRINT"";
  35. 250 PRINTLEFT$("",I+1)LEFT$(DN$,X(I,1))X$(I)"";
  36. 260 NEXTI:ER=0:PP=PEEK(PP):IFPP=86ORPP=90ORPP=105THENER=1
  37. 270 RETURN
  38. 280 PRINT"FUEL:"MID$(STR$(F),2)"   "
  39. 285 PRINT""TAB(12)"   SCORE:";MID$(STR$(S),2)"                 ":RETURN
  40. 290 POKESID+24,15:POKESID+1,0:FORJ=1TO6
  41. 295 POKESID+1,246:PRINT"OUT OF FUEL!":FORI=1TO99:NEXTI
  42. 300 POKESID+1,165:PRINT"OUT OF FUEL!":FORI=1TO99:NEXTI,J
  43. 305 POKESID+1,0:POKESID+24,0:FORI=1TO200:NEXTI:LV=0:RETURN
  44. 320 U=0:Z=FNJ(0)
  45. 321 POKESID+1,81
  46. 330 D$=C$:POKESID+1,0
  47. 335 GETQ$:IFQ$="Q"THENPRINT"[147]":POKESID+1,0:POKESID+15,0::END
  48. 340 IFZ=4THENF=F-10:GOSUB540:ONGTGOTO400,420
  49. 350 IFZ=6THENF=F-10:GOSUB560:ONGTGOTO400,420
  50. 360 IFFNB(0)<>0ANDY>3THENF=F-50:Y=Y+AD
  51. 370 POKECR+X+Y*WD,32:Y=Y-AD:A=0:U=1:P=PEEK(CR+X+Y*WD):GOTO420
  52. 380 IFRND(1)*30>=LTHEN400
  53. 381 KY=INT(RND(1)*15+3):KX=INT(RND(1)*39)+1
  54. 382 IFKY=9ORKY=12ORKY=16ORKX=XTHEN400
  55. 385 K=CRT+KY*WD+KX
  56. 390 IF PEEK(K)=32ORPEEK(K)=96 THENPOKEK,42:POKEK+OF,8
  57. 400 GOSUB230:IFERTHEN635
  58. 410 F=F-1:GOSUB280:IFF>0THEN320
  59. 411 GOSUB290:F=0:GOTO640
  60. 420 IFP=104THENGOSUB470:GOTO320
  61. 430 IFP=MVTHENGOSUB900:GOSUB520:POKESID+1,0:GOTO160
  62. 440 IFP<>USANDP<>32ANDP<>96THEN635
  63. 450 PP=CR+X+Y*WD:POKEPP,US:POKEPP+OF,CP:ONU+1GOTO370,380
  64. 470 POKECR+X+Y*WD,87:HS=HS+1:POKESID+1,120
  65. 480 POKECR+21*WD+HS,32
  66. 485 JL=32:JM=190:FORJK=CR+21*WD+HS+WDTOCR+X+Y*WD
  67. 486 POKEJK-1,JL:JL=PEEK(JK):POKEJK,81:POKESID+1,JM:FORJ=1TO30:NEXT
  68. 487 JM=JM-10:POKESID+1,0:NEXT:US=81
  69. 488 POKECR+X+Y*WD,US:POKECR+X+Y*WD+OF,CP
  70. 490 IF FNJ(0)=0THENGOSUB230:GOSUB850:GOTO490
  71. 495 POKESID+1,100:FORJ=1TO40:NEXT
  72. 500 POKECR+X+Y*WD,104:Y=Y-2:AD=-AD:POKESID+1,0:RETURN
  73. 520 POKESS,32:IFDFANDUS=81THENAP=1
  74. 525 IFDF=0THENS=S+(MS+1)*10
  75. 530 IFHS=5ANDAP=0THENS=S+BN:GOSUB955
  76. 535 IFHS=5THENHS=0:AP=0:MS=MS+1:RU=0:PRINT"";DN$;"[158][209][209][209][209][209]":GOSUB800
  77. 537 GOSUB280:FORI=1TO750:NEXTI:RETURN
  78. 540 IFX>1THENPOKECR+X+Y*WD,32:X=X-1:P=PEEK(CR+X+Y*WD):GT=2:RETURN
  79. 550 IFX>1THENPOKECR+X+Y*WD,32:X=X-1:P=PEEK(CR+X+Y*WD):GT=2:RETURN
  80. 560 IFX<WDTHENPOKECR+X+Y*WD,32:X=X+1:P=PEEK(CR+X+Y*WD):GT=2:RETURN
  81. 570 GT=1:RETURN
  82. 580 L=L+1:ONLGOSUB590,600,610,620
  83. 590 X$(0)=">    >    >    >    >   ":X(0,0)=4:X(0,1)=12:RETURN
  84. 600 X$(1)="[218]    [218]    [218]    [218]    [218]    [218]    [218]    ":X(1,0)=3:X(1,1)=16:RETURN
  85. 610 X$(2)="  [214]    [214]    [214]    [214]    [214]    [214]   ":X(2,0)=2:X(2,1)=9:RETURN
  86. 620 L=L-1:POKECR+22*WD+16,100:POKECR+22*WD+14,100:RETURN
  87. 635 Q=CR+X+INT(Y)*WD:Z=PEEK(Q):POKEQ,160:PRINT"CRASH !     "
  88. 636 FORJ=1TO4:PRINT"CRASH !":FORJ1=1TO20:POKESID+1,255:POKESID+1,0
  89. 637 NEXTJ1:PRINT"CRASH !":FORJ1=1TO99:NEXT:NEXT:FORJ=1TO500:NEXT
  90. 638 POKEQ,Z:DF=1:GOSUB520:DF=0
  91. 640 LV=LV-1:IFLV>0THENPOKESS,32:GOTO155
  92. 650 IFS>BSTHENBS=S:BF=F
  93. 660 IFMS>BMTHENBM=MS
  94. 670 IFF<0THENF=0
  95. 675 MT=MT+MS:FT=FT+F:NT=NT+1:TS=TS+S:AVG=INT(TS/NT):FA=INT(FT/NT)
  96. 678 AVG=INT(TS/NT):FA=INT(FT/NT):MA=MT/NT:MA=.1*(INT(MA*10))
  97. 680 DF$="EASY":IFSJ>1THENDF$="AVERAGE":IFSJ=3THENDF$="HARD"
  98. 685 PRINT"[147]MISSION CONTROL REPORT"
  99. 687 PRINT"    LEVEL: "DF$
  100. 689 PRINT""TAB(27)"# OF"
  101. 690 PRINTTAB(18)"SCORE";TAB(25);"MISSIONS"
  102. 692 PRINT"    THIS GAME:"TAB(19)S;TAB(27)MS
  103. 700 IFNT<2THEN730
  104. 710 PRINT"    BEST SO FAR:"TAB(19)BS;TAB(27)BM
  105. 720 PRINT"    AVERAGE:"TAB(19)AV;TAB(27)MA
  106. 730 GOSUB9100
  107. 740 IFYN=0THENPOKESID+24,0:PRINT"[147]":END
  108. 750 PRINT"[147]":GOTO110
  109. 800 PRINT"";DN$;"MISSION:";MS;"   GAME:";NT+1;" SHUTTLES LEFT:";LV-1;
  110. 810 RETURN
  111. 850 F=F-1:GOSUB280:FORI=1TO80:NEXTI:RETURN
  112. 900 REM
  113. 910 FORJ=100TO30STEP-3:POKESID+1,J:NEXT:POKESID+1,0:RETURN
  114. 950 REM
  115. 955 PRINT""TAB(25)"BONUS!!![146]"
  116. 960 POKESID+1,150:FORJ=1TO300:NEXT:POKESID+1,100:FORJ=1TO300:NEXT
  117. 965 POKESID+1,50:FORJ=1TO300:NEXT:POKESID+1,0:RETURN
  118. 1000 PRINT"[147]":GOSUB7000
  119. 1030 IFG=1THENLF=5:SJ=1:RETURN
  120. 1040 IFG=2THENLF=2:SJ=2:RETURN
  121. 1050 IFG=3THENLF=1:SJ=3:RETURN
  122. 7000 PRINT"[147]PICK A SKILL LEVEL:[151]":
  123. 7010 FORI=1TO3:PRINTI;:NEXTI:PRINT:G=1:T=1:TM=0
  124. 7020 X=G:IFTI>TMTHENPRINTTAB(3*G-3);MID$("[151]",T,1);"[145]";G:T=3-T:TM=TI+10
  125. 7030 IFFNJ(0)=4THENIFG>1THENG=G-1
  126. 7040 IFFNJ(0)=6THENIFG<3THENG=G+1
  127. 7050 IFX<>GTHENPRINTTAB(3*X-3);"[151][145]";X:T=1:TM=0
  128. 7060 IFFNB(0)=0THEN7020
  129. 7070 RETURN
  130. 9100 NO=0:PRINT""
  131. 9110 TM=0:SW=1
  132. 9115 PRINT"PLAY AGAIN? [151]YES NO[145]"
  133. 9120 IFTI<TMTHEN9150
  134. 9130 PRINTTAB(12+NO*4);MID$("[151]",SW,1);MID$("YESNO[160]",3*NO+1,3);"[145]"
  135. 9140 SW=3-SW:TM=TI+15
  136. 9150 JD=PEEK(JS)AND31:JB=(JD<16):JD=JDAND15
  137. 9160 IFJBANDJD=15THENYN=(NO=0):RETURN
  138. 9170 IF(JDAND8)=0ANDNO=0THENNO=1:GOTO9115
  139. 9180 IF(JDAND4)=0ANDNO=1THENNO=0:GOTO9115
  140. 9190 GOTO9120
  141. 61000 CRT=1024:WD=40:VIC=53248:SID=54272:JS=56320:CM=55296:QL=214:QI=254
  142. 61010 RETURN
  143. 62000 GOSUB61000:POKEVIC+32,0:POKEVIC+33,0:LN=LEN(PG$):TB=(40-LN)/2
  144. 62010 PRINT"[147][158]"TAB(TB)LEFT$("                     ",LN)
  145. 62020 PRINT""TAB(TB)PG$:PRINT""TAB(TB)LEFT$("                     ",LN)
  146. 62030 PRINT""TAB((40-LEN(AU$))/2)AU$
  147. 62040 MS$="[157][157]PRESS KEY TO BEGIN"
  148. 62060 PRINT"[159]"TAB(TB)MS$:PRINT"[159]"
  149. 62070 GETIN$:IFIN$=""THEN62070
  150. 62080 GOTO100
  151.